import router from "./router";
// import Element from 'ELEMENT-ui'
import store from './store'

//路由拦截 router中配置了meta~~~

//main.js中需要导入

// 路由判断登录 根据路由配置文件的参数


//守卫路由
//判断登录requireAuth
//判断权限
router.beforeEach((to, from, next) => {

    if (to.matched.some(record => record.meta.requireAuth)) { // 判断该路由是否需要登录权限
        // console.log(to.matched.some(record => record.meta.requireAuth+"是否获取到了             isAdmin判断"))
        //拿到token  （也就是所谓的（是否）登录信息）
        const token = localStorage.getItem("token")
        const userinfo = store.getters.getUser;

        let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)

        if (token) { // 判断当前的token是否存在 ； 登录存入的token
            // console.log('已登陆')

            if (!userinfo) {
                //由于sessionStorage的原因可能userinfo不存在
                this.$axios.get("/getUserByJWT").then(res => {
                    const userinfo = res.data.data //后端返回的登录用户信息（不包含密码）
                    this.$store.commit("SET_USERINFO", userinfo)

                })
            }
            if (to.matched.some(record => record.meta.isAdmin)) { //如果 路由 有isAdmin属性
                console.log('进入判断是否有isAdmin')
                if (userinfo.role == 'admin') {
                    next()
                } else {
                    ELEMENT.Message({
                        message: '权限不够',
                        duration: 1500
                    })
                    next(
                        {
                            path: '/blogs'
                        })
                }
            } else {
                next()
            }
        } else {


            if (flag) {
                //手机端
                ELEMENT.Message({
                    message: '请先登录',
                    duration: 1500
                }), next({
                        path: '/mlogin'
                    })

            } else {
                ELEMENT.Message({
                    message: '请先登录',
                    duration: 1500
                }),
                    next({
                        path: '/login'
                    })

            }
        }

    } else {
        //若不需要Auth 则直接跳转
        next()
    }
})


//点击连接  滚动到页面顶部
router.afterEach((to, from, next) => {
    window.scrollTo(0, 0);

});